<?php
/**
 * 系统核心类
 * 
 */

class kernel
{	
	/**
	 * 构造函数
	 *
	 * 数据库的初始化
	 */
	public function __construct() {
		//$this->_initDb();
		//$this->_initTpl();
		//$this->dbconnect();
	}
	
	/**
	 * 数据库的初始化
	 *
	 */
	protected function dbConnect() {
		if(file_exists(BASEPATH.'db/dbBase'.EXT)) {
			require_once(BASEPATH.'db/dbBase'.EXT);
			return dbBase::getInstance()->get();		
		}
	}	
	/**
	 * 加在相应的类库
	 *
	 * @param 类名 $class
	 * @return 对象	$class
	 */
	public function loadLib($class,$arg=null) {
		static $object = array();
		if(file_exists(BASEPATH.'lib/'.$class.'.class'.EXT)) {
			include_once(BASEPATH.'lib/'.$class.'.class'.EXT);
			if($arg) 
				$object[$class] = new $class($arg);
			else 
				$object[$class] = new $class();
		} else {
			die('no such class'.BASEPATH.'lib/'.$class.'.class'.EXT);
		}
		return $object[$class];
	}
	/**
	 * 加载相应的视图
	 *
	 * @param 视图 $view
	 * @param 数组 $data
	 */
	public function loadView($view,$data = array()) {
		if(file_exists(BASEPATH.'view/'.$view.EXT)) {
			if(!empty($data)) extract($data);
			include_once(BASEPATH.'view/'.$view.EXT);
		} else {
			die('no such view:'.BASEPATH.'view/'.$view.EXT);
		}
	}
	
	
	/**
	 * 加在相应的模型
	 *
	 * @param 模型 $model
	 * @return 对象模型 ]
	 */
	/*public function loadMode($model) { 
	
		if(empty($_ENV[$model])) {
			if(file_exists(BASEPATH.'model/'.$model.EXT)) {
				require_once BASEPATH.'model/'.$model.EXT;
				eval('$_ENV[$model] = new '.$model.'model();');
			}
		}
		return $_ENV[$model];
	}*/
		
	public function loadModel($class) {
		
		static $object = array();
		
		if(file_exists(BASEPATH.'model/'.$class.EXT)) {
			include_once(BASEPATH.'model/'.$class.EXT);
			$class = $class.'model';
			$object[$class] = new $class();
		} else {
			die('no such class'.BASEPATH.'model/'.$class.EXT);
		}
		
		return $object[$class];
	}
	
}

?>
